// // 文件上传
// const uploadFile = require('../util/uploadFile.js') // 文件上传
const upF = require('../util/uploadFile.js') // 文件上传
const UserController = {
    // 文件上传
    fileUpload : function(req, res, next) {
    try {
        console.log("Usercontroller is doing");
        
        // let ext = req.file
        // console.log("ext --" + ext);
        // console.log("ext2 --" + JSON.stringify(ext));
        // //切割出上传的文件的后缀名
        // // const { mimetype } = file
        // let ext = req.file.mimetype.split('/')[1]
        // //计算出图片文件大小
        // let size = (req.file.size / 1024 / 1024).toFixed(2)
        // console.log(`ext是：${ext}  req.file.size是:${req.file.size}  size是:${size}`)
        // if ((ext == 'png' || ext == 'jpg' || ext == 'jpeg') && size < 2) {
        //     console.log('文件格式正常！文件大小正常！！')
        // }else{
        //     console.log('只能上传png、jpg、jpeg格式的图片或图片过大(不能超过2M)')
        //     res.send({ msg: '上传失败,只能上传png、jpg、jpeg格式的图片或图片过大(不能超过2M)', code: -1 });
        //     return
        // }

        // 使用uploadFile模块处理文件上传
        upF.uploadFile(req, res, function (err) {
            // 这里req.fileValidationError用来捕获手动抛出的错误
            if(req.fileValidationError) {
                console.log('捕获到错误啦！！！！！！！！' + req.fileValidationError)
                return res.send(req.fileValidationError)
            } else if (err) {
                console.log(err);
                console.log("文件上传失败，原因是：" + err);
                // console.log("err.code是：" + err.code);
                // console.log("err.field是：" + err.field);
                // res.send(Response.error({ msg: '文件上传失败' }));
                let index = JSON.stringify(err).indexOf("File too large"); //是否包含的“File too large”提示
                if(index !== -1){
                    const msgString = `文件上传失败，文件太大！不能超过${upF.limitsM()}M`
                    res.send({ msg: msgString, code: '-9'});
                }else{
                    console.log("文件上传失败，其它原因！" + JSON.stringify(err))
                    res.send({ msg: '文件上传失败，其它原因！', code: '-1'});
                }
                // done(err)
                return // 务必加上这个，防止二次回掉
            } else {
                // 文件上传成功
                if(req.file){
                    console.log("文件上传成功");
                    console.log(req.file);
    
                    const fileUrl = req.file.path.replace('public', ''); // 获取文件路径，可以根据实际情况修改
                    // 将文件的 URL 添加到模型数据中
                    const data = req.body;
                    data.fileUrl = fileUrl;
                    const fileAddress = data.fileUrl
                    // res.send(Response.success({ msg: '上传成功', data: fileAddress }));
                    // 访问地址（ip+data.fileUrl）,即 http://192.168.1.73:3003/uploads/1708226156446.PNG
                    res.send({ msg: '上传成功', code: '0', fileUrl: fileAddress });
                }else{
                    console.log("传失败，原因未知");
                    console.log(err);
                    res.send({ msg: '上传失败，原因未知', code: '-2' });
                }
                
            }
        });
    } catch (error) {
        console.log('catch (error){} 被执行');
        console.log(error);
        res.send({ msg: '文件上传失败'});
    }
    }
}
 
module.exports = UserController;
